package com.ruoyi.company.mapper;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.company.domain.CompanyAddress;
import com.ruoyi.company.domain.CompanyOther;
import com.ruoyi.sale.domain.SaleGoodsOrder;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface CompanyOtherMapper {
    /**
     * 查询合作单位其他关联信息
     *
     * @param map 查询条件
     */
    List<CompanyOther> selectList(Map<String, Object> map);

    /**
     * 插入合作单位其他信息
     *
     * @param companyOther 插入数据
     */
    int insertCompanyOther(CompanyOther companyOther);

    /**
     * 插入合作单位其他关联信息数据
     *
     * @param map 查询条件
     */
    CompanyOther selectDeptIdByCompanyId(Map<String, Object> map);

    CompanyOther selectOther(CompanyOther companyOther);

    /**
     * 插入合作单位其他关联信息数据
     *
     * @param map 查询条件
     */
    CompanyOther selectByCompanyIdAndDeptId(Map<String, Object> map);

    /**
     * 修改合作单位的其他关联信息
     *
     * @param companyOther 需要修改的信息
     */
    int updateCompanyother(CompanyOther companyOther);

    /**
     * 通过公司主键查询用户信息
     *
     * @param companyId 查询条件
     */
    SysUser selectUserByCompanyId(Long companyId);

    /**
     * 查询合作单位其他关联信息集合
     *
     * @param map 查询条件
     */
    List<CompanyOther> selectNormalList(Map<String, Object> map);

    /**
     * 通过公司主键 求和
     *
     * @param deptId 公司主键
     */
    int selectCountByDeptId(Long deptId);

    /**
     * 求和数据
     *
     * @param map 求和条件
     */
    int selectCountByMap(Map<String, Object> map);

    /**
     * 查询公司名称
     *
     * @param companyId 登录人的公司主键
     */
    List<SaleGoodsOrder> selectDeptObj(Long companyId);

    /**
     * 查询公司名称
     *
     * @param map 查询条件
     */
    List<SaleGoodsOrder> selectDeptObjMap(Map<String, Object> map);

    /**
     * 通过登录名查询数据
     *
     * @param socialCreditCode 登录的用户名
     */
    List<SysUser> selectUserByLoginName(String socialCreditCode);

    /**
     * 查询公司的关联信息
     *
     * @param id 主键
     */
    CompanyOther selectCompanyOtherById(Long id);
}
